package com.probox.common.entity.service.platfom;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.platfom.PlatformPageConfigComponent;
import com.probox.common.entity.domain.platfom.vo.UseTypeVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformComponentVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformPageVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformTemplateView;

/**
 * 页面组件信息Service接口
 *
 *
 * @date 2021-06-10
 */
public interface IPlatformPageConfigComponentService extends IService<PlatformPageConfigComponent> {


    /**
     * 查询页面组件信息
     *
     * @param componentUid 页面组件信息ID
     * @return 页面组件信息
     */
    public PlatformPageConfigComponent selectPlatformPageConfigComponentById(Long componentUid);


    /**
     * 查询页面组件信息列表
     *
     * @param platformPageConfigComponent 页面组件信息
     * @return 页面组件信息集合
     */
    public List<PlatformPageConfigComponent> queryList(PlatformPageConfigComponent platformPageConfigComponent);


    /**
     * 新增页面组件信息
     *
     * @return 结果
     */
    public String insertPlatformPageConfigComponent();

    /**
     * 新增页面组件信息
     *
     * @param platformTemplateView 模板信息
     * @param vo                   模板页面vo信息
     * @return
     */
    public void insertPlatformPageConfigComponent(PlatformTemplateView platformTemplateView, PlatformPageVo vo);


    /**
     * 修改组件信息
     *
     * @param platformTemplateView
     * @param vo
     */
    public void updatePlatformPageConfigComponent(PlatformTemplateView platformTemplateView, PlatformPageVo vo);

    /**
     * 批量删除页面组件信息
     *
     * @param componentUids 需要删除的页面组件信息ID
     * @return 结果
     */
    public boolean deletePlatformPageConfigComponentByIds(Long[] componentUids);


    /**
     * 复制组件信息数据
     *
     * @param view
     * @param pageUid
     * @param copyPageUid 复制给谁的
     */
    public void copyPlatformPageConfigComponent(PlatformTemplateView view, Long pageUid,Long copyPageUid);

    /**
     * 获取信息vo
     *
     * @param pageUid
     * @return
     */
    public List<PlatformComponentVo> getComponentVoList(Long pageUid, Long uid, UseTypeVo useTypeVo);

    public List<PlatformComponentVo> getComponentVoList(Long pageUid, Long uid);
}
